from rpc import Rpc
from settings import Settings
from ym import YandexMusic

import typer

app = typer.Typer()

try:
    settings = Settings()
except:
    Settings.create_default_settings()
    settings = Settings()

ym = YandexMusic(settings.ym_token)


@app.command()
def set_token(token: str):
    try:
        YandexMusic(token).get_last_activity()

        settings.ym_token = token
        settings.save_settings()

        typer.echo("Токен сохранен в настройках!")
    except:
        typer.echo("Не может проверить ваш токен!")


@app.command()
def set_update_time(update_time: float):
    if update_time > 5:
        typer.echo("Время обновления данных не может быть менее 5 секунд.")
        return

    settings.update_time = update_time
    settings.save_settings()

    typer.echo("Время обновления данных сохранен в настройках!")


@app.command()
def run():
    if not settings.ym_token:
        typer.echo("Токена нету в настройках.")
        return

    try:
        rpc = Rpc(settings, ym)
    except:
        typer.echo("Не может подключиться к Дискорду!")
        return
    
    rpc.handle()

if __name__ == "__main__":
    app()
